package com.xuyiwei.xblog.business.system.service;

import com.xuyiwei.xblog.business.article.model.Comment;
import com.xuyiwei.xblog.business.system.dto.mail.input.MailDetail;
import com.xuyiwei.xblog.business.system.model.Link;
import com.xuyiwei.xblog.core.base.constant.enums.TemplateKeyEnum;

/**
 * Created by xuyiwei on 2018/12/5.
 */
public interface IMailService {
    /**
     * 普通的发送
     *
     * @param mailDetail
     * @return
     */
    void send(MailDetail mailDetail);

    /**
     * 发送友情链接邮件通知
     *
     * @param link
     * @param keyEnum
     * @return
     */
    void send(Link link, TemplateKeyEnum keyEnum);

    /**
     * 发送评论邮件通知
     *
     * @param comment
     * @param keyEnum
     * @param audit
     * @return
     */
    void send(Comment comment, TemplateKeyEnum keyEnum, boolean audit);

    /**
     * 发送到管理员的友链操作通知
     *
     * @param link
     */
    void sendToAdmin(Link link);

    /**
     * 发送到管理员的评论通知
     *
     * @param comment
     */
    void sendToAdmin(Comment comment);

    /**
     * 发送邮件验证码
     *
     * @param email
     */
    void sendEmailCode(String email);

    /**
     * 根据邮件和验证码 判断验证是否通过
     * @param email
     * @param code
     * @return
     */
    boolean verifyCode(String email, String code);
}
